package org.dromara.dao.business.domain;



import io.swagger.v3.oas.annotations.media.Schema;
import org.dromara.common.mybatis.core.domain.BaseDomain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;

import java.io.Serial;

/**
 * 用户列表对象 user
 *
 *
 * @date 2024-09-14 08:20:08
 */

@Schema(title = "用户信息模型", description = "用户信息")
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("user")
public class User extends BaseDomain {

    @Serial
    private static final long serialVersionUID = 1L;
    /**
    * 字段 [id]: 主键
    */
    @Schema(description = "用户唯一ID")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;


    /**
     * 字段 [username]: 用户名
     */
    @Schema(description = "账号")
    @TableField(value = "username")
    private String username;

    /**
     * 字段 [password]: 用户登录密码
     */
    @Schema(description = "密码")
    @TableField(value = "password")
    private String password;

    @Schema(description = "名字")
    @TableField(value = "name")
    private String name;

    /**
     * 字段 [avatar]: 用户头像
     */
    @Schema(description = "头像")
    @TableField(value = "avatar")
    private String avatar;

    /**
     * 字段 [status]: 用户状态 0冻结 1正常
     */
    @Schema(description = "账号状态 0冻结 1正常")
    @TableField(value = "status")
    private Boolean status;



    @Schema(description = "邀请码")
    @TableField(value = "invite_code")
    private String inviteCode;



    @Schema(description = "邀请用户ID")
    @TableField(value = "invite_user_id")
    private Long inviteUserId;
    /**
     * 字段 [regisgter_ip]: 注册ip
     */
    @Schema(description = "注册 IP")
    @TableField(value = "register_ip")
    private String registerIp;

    /**
     * 字段 [last_login_time]: 登录时间
     */
    @Schema(description = "登录 时间 ")
    @TableField(value = "last_login_time")
    private LocalDateTime lastLoginTime;

    /**
     * 字段 [last_login_ip]: 登录IP
     */
    @Schema(description = "登录 IP")
    @TableField(value = "last_login_ip")
    private String lastLoginIp;


    @Schema(description = "钻石余额")
    @TableField(value = "balance_diamond")
    private Integer balanceDiamond;



    @Schema(description = "星星余额")
    @TableField(value = "balance_star")
    private Integer balanceStar;

    /**
     * 字段 [remark]: 备注
     */
    @Schema(description = "备注信息")
    @TableField(value = "remark")
    private String remark;

    @Schema(description = "用户套餐类型")
    @TableField(value = "user_type")
    private Integer userType;
    @Schema(description = "用户套餐开始时间")
    @TableField(value = "user_type_start")
    private LocalDateTime userTypeStart;
    @Schema(description = "用户套餐结束时间")
    @TableField(value = "user_type_end")
    private LocalDateTime userTypeEnd;

//
//    @TableField(value = "password_dead_time")
//    private LocalDateTime passwordDeadTime;

    @TableField(value = "device_id")
    private String deviceId;

    @TableField(value = "udun_address_high")
    private String udunAddressHigh;

    @TableField(value = "udun_address_low")
    private String udunAddressLow;

}
